package com.asa.c;

public class F {

	
	/**
	 * 
	 * Serial回收器
			Serial收集器作为HotSpot中Client模式下的默认新生代垃圾收集器。Serial Old是运
			行在Client模式下默认的老年代的垃圾回收器。
			-XX: +UseSerialGC
			指定年轻代和老年代都使用串行收集器。等价于新生代用Serial GC，且老年代用
			Serial Old GC。可以获得最高的单线程收集效率。

	 * 
	 * 
	 * ParNew回收器
			-XX: +UseParNewGC
			手动指定使用ParNew收集器执行内存回收任务。它表示年轻代使用并行收集器，不影响老
			年代。
			- XX:ParallelGCThreads=N
			限制线程数量，默认开启和CPU数据相同的线程数。

	 * 
	 * 
	 * 
	 * 
	 * 
	 * Parallel回收器
			●-XX:+UseParalle1GC 手动指定 年轻代使用Paralle1并行收集器执行内存回收任务。
			●-XX:+UseParallel0ldGC 手动指定老年代都是使用并行回收收集器。
			●分别适用于新生代和老年代。默认jdk8是开启的。
			上面两个参数，默认开启一一个， 另一个也会被开启。( 互相激活)
			-XX:ParallelGCThreads设置年轻代并行收集器的线程数。一般地， 最好与CPU数量相等，以避免
			过多的线程数影响垃圾收集性能。
			●在默认情况下.当CPU数量小于8个， ParallelGCThreads 的值等于CPU数量。
			●
			当CPU数量大于8个，Paralle1GCThreads的值等于3+[5*CPU_ Count]/8] 。
			●-XX:MaxGCPauseMillis 设置垃圾收集器最大停顿时间(即STW的时间)。 单位是毫秒。
			为了尽可能地把停顿时间控制在MaxGCPauseMills以内，收集器在工作时会调整Java堆大小
			或者其他一些参数。
			对于用户来讲，停顿时间越短体验越好。但是在服务器端，我们注重高并发，整体的吞吐量
			。所以服务器端适合Parallel，进行控制。
			该参数使用需谨慎。
			●-XX:GCTimeRatio 垃圾收集时间占总时间的比例 (= 1 / (N + 1))。 用于衡量吞吐量的大小。
			●取值范围(0,100) 。默认值99.也就是垃圾回收时间不超过1%。
			●与前一个-XX:MaxGCPauseMillis参数有-定矛盾性。暂停时间越长，Radio参数就容易超过
			设定的比例。
			●-Xx: +UseAdaptiveSizePolicy
			设置Paral1el Scavenge收 集器具有自适应调节策略

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * CMS收器
			●-XX:+UseConcMarkSweepGC 手动指定使用CMS收集器执行内存回收任务。
			开启该参数后会自动将-XX:+UseParNewGC打开。即: ParNew(Young区 用)+CMS(01d区用
			)+Serial 01d的组合。
			●-XX:CMSlnitiatingoccupanyFraction 设置堆内存使用率的阈值，一旦达到该阈值，便开始进行
			回收。
			●JDK5及 以前版本的默认值为68，即当老年代的空间使用率达到68%时，会执行一次CMS 回收。
			JDK6及以上版本默认值为92%
			如果内存增长缓慢，则可以设置一个稍大的值，大的阀值可以有效降低CMS的触发频率，减少
			老年代回收的次数可以较为明显地改善应用程序性能。反之，如果应用程序内存使用率增长
			很快，则应该降低这个阈值，以避免频繁触发老年代串行收集器。因此通过该选项便可以有
			效降低Fu1l GC的执行次数。
			●-XX:+UseCMSCompactAtFul1collection 用于指定在执行完Full GC后对内存空间进行压缩整理
			以此避免内存碎片的产生。不过由于内存压缩整理过程无法并发执行，所带来的问题就是停顿时
			间变得更长了。
			●-XX: CMSFullGCsBeforeCompaction设置在执行多少次Fu1l GC后对内存空间进行压缩整理。
			●- XX:ParallelCMSThreads 设置CMS的线程数量。
			CMS默认启动的线程数是(ParallelGCThreads+3)/4. ParallelGCThreads 是年轻代并
			行收集器的线程数。当CPU 资源比较紧张时，受到CMS收集器线程的影响，应用程序的性能在
			垃圾回收阶段可能会非常糟糕。


	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 另外，CMS收集器还有如下常用参数:
			●-XX: ConcGCThreads: 设置并发垃圾收集的线程数，默认该值是基于ParallelGCThreads计算出
			来的;|
			●-Xx: +UseCMSInitiatingOccupancyOnly:是否动态可调，用这个参数可以使CMS直按
			CMSInitiatingoccupancyFraction设定的值启动
			●-XX: +CMSScavengeBeforeRemark: 强制hotspot虚拟机在cms remark阶段之前做一 次minor
			gc，用于提高remark阶段的速度;
			●-XX:+CMSClassUnloadingEnable:如果有的话，启用回收Perm区(JDK8之前)
			●-XX:+CMSParallelInitialEnabled:用于开启CMS initial-mark阶 段采用多线程的方式进行
			标记，用于提高标记速度，在Java8开始已经默认开启;
			●-XX:+CMSParallelRemarkEnabled:用户开启CMS remark阶 段采用多线程的方式进行重新标记
			默认开启:
			●-XX: +ExplicitGCInvokesConcurrent、
			-XX:+ExplicitGCInvokesConcurrentAndUnloadsClasses这两个参数用户指定hotspot虚拟在
			执行System. gc()时使用CMS周期;
			●-XX:+CMSPrecleaningEnabled: 指定CMS是否需要进行Pre cleaning这个阶段

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * G1回收器
			●- XX: MaxGCPauseMillis
			设置期望达到的最大GC停顿时间指标(JVM会尽力实现，但不保证达到)。默认值是200ms
			●- XX:ParallelGCThread
			设置STW时GC线程数的值。最多设置为8
			●- XX: ConcGCThreads
			设置并发标记的线程数。将n设置为并行垃圾回收线程数(ParallelGCThreads )的1/4左
			右。
			- XX: InitiatingHeap0c cupancyPercent
			设置触发并发GC周期的Java堆占用率阈值。超过此值，就触发GC。默认值是45。
			●- XX:G1NewSizePercent、 - XX:G1MaxNewSizePercent
			新生代占用整个堆内存的最小百分比(默认5%)、最大百分比(默认60%)
			●- Xx: G1ReservePercent=10
			保留内存区域，防止to space (Survivor中 的to区)溢出

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	
	
	
	
	/**
	 * 
	 * 
	 * 
	 * -verbose:gc 

			输出gc日志信息，默认输出到标准输出
			等同于-verbose:gc
			-XX:+ PrintGC
			表示打开简化的GC日志

			在发生垃圾回收时打印内存回收详细的日志,
			-XX:+ PrintGCDetails
			并在进程退出时输出当前内存各区域分配情况
			-XX:+ PrintGCTimeStamps

			输出GC发生时的时间戳
			-XX:+ PrintGCDateStamps			不可以独立使用，需要配合-XX:+ PrintGCDetails使用

			输出GC发生时的时间戳(以日期的形式，如
			2013-05-04T21:53:59.234+ 0800)
			-XX:+ PrintHeapAtGC

			每一-次GC前和GC后，都打印堆信息
			-Xloggc:<file>
			把GC日志写入到一个文件中去，而不是打印到标准输出中

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * -XX:+ TraceClassLoading
			监控类的加载
			-XX:+ PrintGCApplicationStoppedTime
			中打印GC时线程的停顿时间p
			-XX:+ PrintGCApplicationConcurrentTime

			垃圾收集之前打印出应用未中断的执行时间
			-XX:+ PrintReferenceGC

			记录回收了多少种不同引用类型的引用
			-XX:+ PrintTenuringDistribution
			让JVM在每次MinorGC后打印出当前使用的Survivor中对象的年龄分布
			
			-XX:+ UseGCLogFileRotation
			
			启用GC日志文件的自动转储
			-XX:NumberOfGClogFiles= 1
			GC日志文件的循环数目
			
			-X:GCLogFileSize= 1M
			控制GC日志文件的大小

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * -XX:+ DisableExplicitGC
				禁.止hotspot执行System.gc()，默认禁用
				日
				-XX:ReservedCodeCacheSize= <n> [glm|k]、-XX:nitialCodeCacheSize= <n> [g|m|k]
				指定代码缓存的大小
				使用该参数让jvm放弃一些被 编译的代码,
				-XX:+ UseCodeCacheFlushing
				-日-
				避免代码缓存被占满时JVM切换到interpreted only的情况
				-XX:+ DoEscapeAnalysis
				-日
				开启逃逸分析
				-XX:+ UseBiasedLocking
				开启偏向锁
				-XX:+ UseLargePages
				开启使用大页面
				-XX:+ UseTLAB
				-日-
				使用TLAB，默认打开
				-XX:+ PrintTLAB
				打印TLAB的使用情况
				-XX:TLABSize
				-日-
				设置TLAB大小

	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 * 
	 */
	
	
	
	
	
	
	
	
	
	
}
